#ifndef _CTimer_H_
#define _CTimer_H_

#include "common.h"

class CTimer
{
private:
    int             fps;
    float           timeStart;
    float           timeDelta;
    LARGE_INTEGER   tickFrequency;

public:

	CTimer( void );
    ~CTimer( void );

    ///////////////////////////////////////////////////////////////////////////////
    // Use to initialize & to start CTimer.
    // All time calculations are calculated from game time at this point.
    ///////////////////////////////////////////////////////////////////////////////
    void Reset( void );

    ///////////////////////////////////////////////////////////////////////////////
    // Use to update CTimer.
    // ONLY CALL ONCE PER FRAME!!!
    ///////////////////////////////////////////////////////////////////////////////
    void Update( void );

    ///////////////////////////////////////////////////////////////////////////////
    // Returns ( in seconds ) the amount of time from last Reset call.
    ///////////////////////////////////////////////////////////////////////////////
    float GetTime( void );

    ///////////////////////////////////////////////////////////////////////////////
    // Returns ( in seconds ) the amount of time from last frame.
    ///////////////////////////////////////////////////////////////////////////////
    float GetDeltaTime( void );

    ///////////////////////////////////////////////////////////////////////////////
    // Returns the number of FRAMES PER SECOND.
    ///////////////////////////////////////////////////////////////////////////////
    int GetFPS( void );

	string GetFPSString(void);
};

#endif